Termination Proof Script
Consider the TRS R consisting of the rewrite rules
|
| 1: |
|
0(#) |
→ # |
| 2: |
|
x + # |
→ x |
| 3: |
|
# + x |
→ x |
| 4: |
|
0(x) + 0(y) |
→ 0(x + y) |
| 5: |
|
0(x) + 1(y) |
→ 1(x + y) |
| 6: |
|
1(x) + 0(y) |
→ 1(x + y) |
| 7: |
|
1(x) + 1(y) |
→ 0((x + y) + 1(#)) |
| 8: |
|
(x + y) + z |
→ x + (y + z) |
| 9: |
|
# * x |
→ # |
| 10: |
|
0(x) * y |
→ 0(x * y) |
| 11: |
|
1(x) * y |
→ 0(x * y) + y |
| 12: |
|
(x * y) * z |
→ x * (y * z) |
| 13: |
|
x * (y + z) |
→ (x * y) + (x * z) |
| 14: |
|
app(nil,l) |
→ l |
| 15: |
|
app(cons(x,l1),l2) |
→ cons(x,app(l1,l2)) |
| 16: |
|
sum(nil) |
→ 0(#) |
| 17: |
|
sum(cons(x,l)) |
→ x + sum(l) |
| 18: |
|
sum(app(l1,l2)) |
→ sum(l1) + sum(l2) |
| 19: |
|
prod(nil) |
→ 1(#) |
| 20: |
|
prod(cons(x,l)) |
→ x * prod(l) |
| 21: |
|
prod(app(l1,l2)) |
→ prod(l1) * prod(l2) |
|
There are 31 dependency pairs:
|
| 22: |
|
0(x) +# 0(y) |
→ 0#(x + y) |
| 23: |
|
0(x) +# 0(y) |
→ x +# y |
| 24: |
|
0(x) +# 1(y) |
→ x +# y |
| 25: |
|
1(x) +# 0(y) |
→ x +# y |
| 26: |
|
1(x) +# 1(y) |
→ 0#((x + y) + 1(#)) |
| 27: |
|
1(x) +# 1(y) |
→ (x + y) +# 1(#) |
| 28: |
|
1(x) +# 1(y) |
→ x +# y |
| 29: |
|
(x + y) +# z |
→ x +# (y + z) |
| 30: |
|
(x + y) +# z |
→ y +# z |
| 31: |
|
0(x) *# y |
→ 0#(x * y) |
| 32: |
|
0(x) *# y |
→ x *# y |
| 33: |
|
1(x) *# y |
→ 0(x * y) +# y |
| 34: |
|
1(x) *# y |
→ 0#(x * y) |
| 35: |
|
1(x) *# y |
→ x *# y |
| 36: |
|
(x * y) *# z |
→ x *# (y * z) |
| 37: |
|
(x * y) *# z |
→ y *# z |
| 38: |
|
x *# (y + z) |
→ (x * y) +# (x * z) |
| 39: |
|
x *# (y + z) |
→ x *# y |
| 40: |
|
x *# (y + z) |
→ x *# z |
| 41: |
|
APP(cons(x,l1),l2) |
→ APP(l1,l2) |
| 42: |
|
SUM(nil) |
→ 0#(#) |
| 43: |
|
SUM(cons(x,l)) |
→ x +# sum(l) |
| 44: |
|
SUM(cons(x,l)) |
→ SUM(l) |
| 45: |
|
SUM(app(l1,l2)) |
→ sum(l1) +# sum(l2) |
| 46: |
|
SUM(app(l1,l2)) |
→ SUM(l1) |
| 47: |
|
SUM(app(l1,l2)) |
→ SUM(l2) |
| 48: |
|
PROD(cons(x,l)) |
→ x *# prod(l) |
| 49: |
|
PROD(cons(x,l)) |
→ PROD(l) |
| 50: |
|
PROD(app(l1,l2)) |
→ prod(l1) *# prod(l2) |
| 51: |
|
PROD(app(l1,l2)) |
→ PROD(l1) |
| 52: |
|
PROD(app(l1,l2)) |
→ PROD(l2) |
|
The approximated dependency graph contains 5 SCCs:
{41},
{23-25,27-30},
{32,35-37,39,40},
{49,51,52}
and {44,46,47}.
-
Consider the SCC {41}.
There are no usable rules.
By taking the AF π with
π(APP) = 1
and π(cons) = [2] together with
the lexicographic path order with
empty precedence,
rule 41
is strictly decreasing.
-
Consider the SCC {23-25,27-30}.
The usable rules are {1-8}.
The constraints could not be solved.
-
Consider the SCC {32,35-37,39,40}.
The usable rules are {1-13}.
The constraints could not be solved.
-
Consider the SCC {49,51,52}.
There are no usable rules.
By taking the AF π with
π(PROD) = 1
and π(cons) = 2 together with
the lexicographic path order with
empty precedence,
rule 49
is weakly decreasing and
the rules in {51,52}
are strictly decreasing.
There is one new SCC.
-
Consider the SCC {49}.
By taking the AF π with
π(PROD) = 1
and π(cons) = [2] together with
the lexicographic path order with
empty precedence,
rule 49
is strictly decreasing.
-
Consider the SCC {44,46,47}.
There are no usable rules.
By taking the AF π with
π(SUM) = 1
and π(cons) = 2 together with
the lexicographic path order with
empty precedence,
rule 44
is weakly decreasing and
the rules in {46,47}
are strictly decreasing.
There is one new SCC.
-
Consider the SCC {44}.
By taking the AF π with
π(SUM) = 1
and π(cons) = [2] together with
the lexicographic path order with
empty precedence,
rule 44
is strictly decreasing.
Tyrolean Termination Tool (0.12 seconds)
--- May 3, 2006